package com.info.zhiduoduo.repository.dto.account;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.info.zhiduoduo.common.excelconverter.AccoutTypeConverter;
import com.info.zhiduoduo.common.excelconverter.FlowtypeConverter;
import com.info.zhiduoduo.common.excelconverter.BiztypeConverter;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)  //setter return this;
@ToString
public class CompanyAccountFlowDto {

	@ExcelIgnore
	private int id;

	@ExcelIgnore
	private int compid;

	@ExcelProperty(value = "企业名")
	private String compname;

	@ExcelProperty(value = "账户类型", converter = AccoutTypeConverter.class)
	private Integer accountType;

	@ExcelProperty(value = "收入或支出", converter = FlowtypeConverter.class)
	private Integer flowtype;

	@ExcelProperty("金额")
	private BigDecimal flowAmount;

	@ExcelProperty("记录后账户余额")
	private BigDecimal currBalance;

	@ExcelIgnore
	private Integer bizid;

	@ExcelIgnore
	private Integer itemId;

	@ExcelProperty(value = "业务类型", converter = BiztypeConverter.class)
	private Integer bizType;

	@ExcelProperty(value = "流水名目")
	private String flowname;

	@ExcelProperty("充值单号")
	private String rechargeno;

	@ExcelProperty("记录时间")
	private Date createtime;


	@ExcelProperty("创客姓名")
	private String realname;

	@ExcelProperty("创客工作室")
	private String username;

	@ApiModelProperty("实际打款金额")
	@ExcelIgnore
	private BigDecimal projectpayamount;

	@ApiModelProperty("含税金额")
	@ExcelIgnore
	private BigDecimal projectdealamount;

	@ExcelIgnore
	private List<CrowdsourcingLedgerDto> itemList;

	@ApiModelProperty("支付方式ID")
	@ExcelIgnore
	private Integer payId;

	@ApiModelProperty("支付方式名称")
	@ExcelIgnore
	private String payName;

	@ApiModelProperty("支付方式别名")
	@ExcelIgnore
	private String payNameAlias;


}
